home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / OEMNADE1.IN_ / oemnade1.inf
INI File  |  1996-07-12  |  33KB  |  845 lines

  1. [Identification]
  2.     OptionType = NetAdapter
  3. [PlatformsSupported]
  4.     ISA
  5.     EISA
  6.     "Jazz-Internal Bus"
  7. [Options]
  8.     ELNK16
  9. [FileConstants]
  10. UtilityInf      = "UTILITY.INF"
  11. subroutineinf   = "SUBROUTN.INF"
  12. ParamInf        = "NCPARAM.INF"
  13. SoftwareType    = "driver"
  14. Exit_Code       = 0
  15. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  16. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  17. Manufacturer    = "Microsoft"
  18. ProductMajorVersion     = "4"
  19. ProductMinorVersion     = "0"
  20. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  21. ProductSoftwareName     = "Elnk16"
  22. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\elnk16.sys"
  23. NetRuleSoftwareType     = "elnk16Sys ndisDriver elnk16Driver"
  24. NetRuleSoftwareUse      = $(SoftwareType)
  25. NetRuleSoftwareBindForm = """Elnk16Sys"" yes no container"
  26. NetRuleSoftwareClass    = {"elnk16Driver basic"}
  27. NetRuleSoftwareBindable = {"elnk16Driver elnk16Adapter non exclusive 100"}
  28. ProductHardwareName     = "Elnk16"
  29. NetRuleHardwareType     = "elnk16 elnk16Adapter"
  30. NetRuleHardwareBindForm = " yes yes container"
  31. NetRuleHardwareClass    = {"elnk16Adapter basic"}
  32. ProductOpSupport     = 134 
  33. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  34. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  35. [GeneralConstants]
  36. from      = ""
  37. to        = ""
  38. ExitCodeOk     = 0
  39. ExitCodeCancel = 1
  40. ExitCodeFatal  = 2
  41. KeyNull         = ""
  42. MAXIMUM_ALLOWED   = 33554432
  43. RegistryErrorIndex = NO_ERROR
  44. KeyProduct      = ""
  45. KeyParameters   = ""
  46. TRUE            = 1
  47. FALSE           = 0
  48. NoTitle            = 0
  49. ExitState   = "Active"
  50. OldVersionExisted = $(FALSE)
  51. DriverPath      = $(!STF_NTPATH)\drivers
  52. [date]
  53.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  54. [Identify]
  55.     read-syms Identification
  56.     set Status     = STATUS_SUCCESSFUL
  57.     set Identifier = $(OptionType)
  58.     set Media      = #("Source Media Descriptions", 1, 1)
  59.     Return $(Status) $(Identifier) $(Media)
  60. [ReturnOptions]
  61.     set Status        = STATUS_FAILED
  62.     set OptionList     = {}
  63.     set OptionTextList = {}
  64.     set LanguageList = ^(LanguagesSupported, 1)
  65.     Ifcontains(i) $($0) in $(LanguageList)
  66.         ifstr(i) $($1) == ""
  67.            goto returnoptions
  68.         endif
  69.         set PlatformList = ^(PlatformsSupported, 1)
  70.         Ifcontains(i) $($1) in $(PlatformList)
  71.            goto returnoptions
  72.         else
  73.            set Status = STATUS_NOTSUPPORTED
  74.            goto finish_ReturnOptions
  75.         endif
  76.     else
  77.         set Status = STATUS_NOLANGUAGE
  78.         goto finish_ReturnOptions
  79.     endif
  80. returnoptions = +
  81.     set OptionList     = ^(Options, 1)
  82.     set OptionTextList = ^(OptionsText$($0), 1)
  83.     set Status         = STATUS_SUCCESSFUL
  84. finish_ReturnOptions = +
  85.     Return $(Status) $(OptionList) $(OptionTextList)
  86. [InstallOption]
  87.     set Option   = $($1)
  88.     set SrcDir   = $($2)
  89.     set AddCopy  = $($3)
  90.     set DoCopy   = $($4)
  91.     set DoConfig = $($5)
  92.     set LanguageList = ^(LanguagesSupported, 1)
  93.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  94.         Return STATUS_NOLANGUAGE
  95.     endif
  96.     Debug-Output "OEMNADE1.INF: STF_CWDIR is: "$(!STF_CWDIR)
  97.     Debug-Output "OEMNADE1.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  98.     set-subst LF = "\n"
  99.     read-syms GeneralConstants
  100.     read-syms FileConstants
  101.     read-syms DialogConstants$(!STF_LANGUAGE)
  102.     ifstr(i) $(!NTN_Origination) == "NCPA"
  103.         set Continue = $(OK)
  104.     endif
  105.     read-syms FileConstants$(!STF_LANGUAGE)
  106.     detect date
  107.     set-title  $(FunctionTitle)
  108.     set to   = Begin
  109.     set from = Begin
  110.     set CommonStatus = STATUS_SUCCESSFUL
  111.     EndWait
  112. Begin = +
  113.     Set ActivateDetection = FALSE
  114.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  115.         set StartLabel = removeadapter
  116.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  117.         set StartLabel = UpgradeSoftware
  118.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  119.         set StartLabel = bindingadapter
  120.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  121.         set CommonStatus = STATUS_REBOOT
  122.         Set ActivateDetection = TRUE
  123.         set StartLabel = configureadapter
  124.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  125.             Debug-Output "Cannot configure the elink 16 driver software."
  126.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  127.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  128.                 Debug-Output "ShellCode error: cannot get an error string."
  129.                 goto ShellCodeError
  130.             endif
  131.             set Error = $($R0)
  132.             set from = end
  133.             set to = end
  134.             goto nonfatalinfo
  135.         endif
  136.     else
  137.         Set ActivateDetection = TRUE
  138.         set StartLabel = installadapter
  139.         set OEM_ABANDON_OPTIONS = {}
  140.         set OEM_ABANDON_SOFTWARE = FALSE
  141.         set OEM_ABANDON_ON = TRUE
  142.     endif
  143.     Debug-Output "OEMNADE1.INF: =================================================="
  144.     Debug-Output "OEMNADE1.INF: STF_CWDIR is: "$(!STF_CWDIR)
  145.     Debug-Output "OEMNADE1.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  146.     Debug-Output "OEMNADE1.INF: Option is: "$(Option)
  147.     Debug-Output "OEMNADE1.INF: !STF_NCDETECT  is: "$(!STF_NCDETECT)
  148.     Debug-Output "OEMNADE1.INF: !STF_NCOPTION  is: "$(!STF_NCOPTION)
  149.     Debug-Output "OEMNADE1.INF: !STF_NCDETCARD is: "$(!STF_NCDETCARD)
  150.     Debug-Output "OEMNADE1.INF: !STF_NCDETINFO is: "$(!STF_NCDETINFO)
  151.     Debug-Output "OEMNADE1.INF: =================================================="
  152.     Set DetectedCard = FALSE
  153.     Ifstr(i) $(ActivateDetection) != TRUE
  154.         Goto $(StartLabel)
  155.     Endif
  156.     Set TypeList = {{IRQ, IRQ_List, IRQ_Level},+
  157.                     {IOADDR, IOADDR_Addr_List, IOBaseAddrValue},+
  158.                     {MEMADDR, MemAddrDecList, MemAddrDec},+
  159.                     {MEMADDRLENGTH, MemAddrLengthList, MemAddrLength},+
  160.                     {TRANSCEIVER, TranceiverValueList, TransceiverValue},+
  161.                     {ZEROWAITSTATE, WaitStateValueList, WaitStateValue}}
  162.     Debug-Output "OEMNADE1.INF: Calling Param_BuildTypeLists"
  163.     Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  164.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  165.         Debug-Output "OEMNADE1.INF: Error shelling to NCPARAM.INF!Param_BuildTypeLists: "$($ShellCode)
  166.         Goto ShellCodeError
  167.     Endif
  168.     Set Status = $($R0)
  169.     ifstr(i) $(Status) != STATUS_SUCCESSFUL
  170.         Debug-Output "OEMNADE1.INF: Param_BuildTypeLists returned: "$(Status)
  171.         Goto fataldetect
  172.     Endif
  173.     Debug-Output "OEMNADE1.INF: Calling Param_SetDefaults"
  174.     Shell $(ParamInf) Param_SetDefaults {}
  175.     Shell $(ParamInf) HexListFromDecList $(IOADDR_Addr_List)
  176.     Set IOADDR_Hex_List = $($R0)
  177.     Shell $(ParamInf) HexListFromDecList $(MemAddrDecList)
  178.     Set MemAddrHexList = $($R0)
  179.     Ifstr(i) $(!STF_NCDETECT) == YES
  180.         Ifstr(i) $(!STF_NCOPTION) == $(Option)
  181.            Set DetectedCard = TRUE
  182.            Debug-Output "OEMNADE1.INF: Setting DetectedCard to TRUE"
  183.         Endif
  184.     Endif
  185.     QueryListSize ListSize $(WaitStateValueList)
  186.     Debug-Output "OEMNADE1.INF: WaitStateValueList size = "$(ListSize)
  187.     Ifint $(ListSize) < 2
  188.         Set WaitStateValueList = {1,0}
  189.         Set WaitStateValue = 0
  190.     Endif
  191.     Ifint $(WaitStateValue) == 0
  192.         Set CheckItemsIn = {"OFF"}
  193.     Else
  194.         Set CheckItemsIn = {"ON"}
  195.     Endif
  196.     Shell "" DebugConfiguration "After parameter querying"
  197.     set from = $(fatal)
  198.     set to = $(fatal)
  199.     goto $(StartLabel)
  200. installadapter = +
  201.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  202.     Ifstr $(KeyProduct) != $(KeyNull)
  203.         CloseRegKey $(KeyProduct)
  204.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  205.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  206.                $(ProductVersion)
  207.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  208.                Debug-Output "ShellCode error: cannot get an error string."
  209.                goto ShellCodeError
  210.            endif
  211.            goto end
  212.         else
  213.            Shell $(UtilityInf), CardExistedDlg
  214.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  215.                Debug-Output "ShellCode error: cannot get an error string."
  216.                goto ShellCodeError
  217.            endif
  218.            ifstr(i) $($R1) != "OK"
  219.                set CommonStatus = STATUS_USERCANCEL
  220.                goto end
  221.            endif
  222.            set OldVersionExisted = $(TRUE)
  223.         endif
  224.     endif
  225.     Ifstr(i) $(DetectedCard) != TRUE
  226.         Goto adaptersetup
  227.     Endif
  228.     StartWait
  229.     Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
  230.     EndWait
  231.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  232.         Goto adaptersetup
  233.     Endif
  234.     Set DetectedParams = $($R1)
  235.     Debug-Output "OEMNADE1.INF: Calling Param_SetDefaults to merge detected params"
  236.     Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
  237.     goto adaptersetup
  238. configureadapter = +
  239.     Ifstr $(KeyProduct) == $(KeyNull)
  240.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  241.         Ifstr $(KeyProduct) == $(KeyNull)
  242.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  243.             Debug-Output "Cannot find component product key"
  244.             goto fatalregistry
  245.         Endif
  246.     Endif
  247.     Debug-Output "INF: Shelling to FindService"
  248.     Shell $(UtilityInf) FindService, $(KeyProduct)
  249.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  250.         Debug-Output "INF: FindService shell failure"
  251.         Goto ShellCodeError
  252.     Endif
  253.     Ifstr(i) $($R0) != NO_ERROR
  254.         Debug-Output "INF: FindService Shell error: "$($R0)
  255.         Goto fatalregistry
  256.     endif
  257.     set KeyParameters = $($R2)
  258.     CloseRegKey $($R1)
  259.     Ifstr $(KeyParameters) == $(KeyNull)
  260.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  261.         Debug-Output "Cannot find component service"
  262.         goto fatalregistry
  263.     endif
  264.     set OldVersionExisted = $(TRUE )
  265.     set ValueName = ""
  266.     set ValueData = ""
  267.     set ValueStr  = ""
  268.     set ValueList = {}
  269.     EnumRegValue $(KeyParameters) ValueList
  270.     ForListDo $(ValueList)
  271.         set ValueItem = $($)
  272.         set ValueName = *($(ValueItem),1)
  273.         set ValueData = *($(ValueItem),4)
  274.         Ifstr(i) $(ValueName) == "Transceiver"
  275.             set TransceiverValue = $(ValueData)
  276.         else-ifstr(i) $(ValueName) == "ZeroWaitState"
  277.             set WaitStateValue = $(ValueData)
  278.         else-ifstr(i) $(ValueName) == "InterruptNumber"
  279.             set IRQ_Level = $(ValueData)
  280.         else-ifstr(i) $(ValueName) == "IoBaseAddress"
  281.             set IOBaseAddrValue = $(ValueData)
  282.         else-ifstr(i) $(ValueName) == "MemoryMappedBaseAddress"
  283.             set MemAddrDec = $(ValueData)
  284.         else-ifstr(i) $(ValueName) == "MemoryMappedSize"
  285.             set MemAddrLength = $(ValueData)
  286.         else-ifstr(i) $(ValueName) == "BusType"
  287.             set BusInterfaceType = $(ValueData)
  288.         else-ifstr(i) $(ValueName) == "BusNumber"
  289.             set BusNumber = $(ValueData)
  290.         endif
  291.     EndForListDo
  292. adaptersetup = +
  293.     Shell "" DebugConfiguration "before displaying dialog"
  294.     Set from = adapteroptions
  295.     Set IOADDR_Hex_Value = *($(IOADDR_Hex_List), ~($(IOADDR_Addr_List),$(IOBaseAddrValue)))
  296.     Set MemAddrHexValue = *($(MemAddrHexList), ~($(MemAddrDecList),$(MemAddrDec)))
  297.     Ifint $(TransceiverValue) == 1
  298.         Set RadioIn = {1}
  299.     Else
  300.         Set RadioIn = {2}
  301.     Endif
  302.     Ifint $(WaitStateValue) == 0
  303.         Set CheckItemsIn = {"OFF"}
  304.     Else
  305.         Set CheckItemsIn = {"ON"}
  306.     Endif
  307.     Shell $(ParamInf) Param_ParameterConfidence
  308.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  309.         Debug-Output "OEMNADE2.INF: parameter confidence too low to bypass configuration"
  310.         Goto adapteroptions
  311.     Endif
  312.     Ifstr(i) $(DetectedCard) == TRUE
  313.         Ifstr(i) $(!STF_INSTALL_MODE) != CUSTOM
  314.             Goto adapterverify
  315.         Endif
  316.     Endif
  317. adapteroptions = +
  318.     set from = adapteroptions
  319.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  320.         ifstr(i) $(!AutoNetInterfaceType) != ""
  321.             set BusInterfaceType = $(!AutoNetInterfaceType)
  322.         else
  323.             set BusInterfaceType = 1    
  324.         endif
  325.         ifstr(i) $(!AutoNetBusNumber) != ""
  326.             set BusNumber = $(!AutoNetBusNumber)
  327.         else
  328.             set BusNumber = 0
  329.         endif
  330.         goto adapterverify
  331.     endif
  332.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  333.     ui start "InputDlg"
  334.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  335.         set IRQ_Level = $(Combo1Out)
  336.         set IOADDR_Hex_Value = $(Combo2Out)
  337.         Set MemAddrHexValue = $(Combo3Out)
  338.         Set MemAddrLength = $(Combo4Out)
  339.         set TransceiverTypeIndex = *($(RadioOut),1)
  340.         Ifint $(TransceiverTypeIndex) == 1
  341.             Set TransceiverValue = 1
  342.         Else
  343.             Set TransceiverValue = 2
  344.         Endif
  345.         Set Chk = *($(CheckItemsOut), 1)
  346.         Ifstr(i) $(Chk) == "ON"
  347.             Set WaitStateValue = 1
  348.         Else
  349.             Set WaitStateValue = 0
  350.         Endif
  351.         Set MemAddrDec = *($(MemAddrDecList), ~($(MemAddrHexList),$(MemAddrHexValue)))
  352.         Set IOBaseAddrValue = *($(IOADDR_Addr_List), ~($(IOADDR_Hex_List),$(IOADDR_Hex_Value)))
  353.         ui pop 1
  354.     else-ifstr(i) $(DLGEVENT) == "BACK"
  355.         set CommonStatus = STATUS_USERCANCEL
  356.         Debug-Output "Action: exit. Bye."
  357.         ui pop 1
  358.         goto end
  359.     else
  360.         ui pop 1
  361.         Debug-Output "Action: unknown. Bye."
  362.         goto end
  363.     endif
  364.     ifstr(i) $(!STF_NCDETINFO) == {}
  365.         Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardwareDescription) $(BusInterfaceType) $(BusNumber)
  366.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  367.             Debug-Output "ShellCode error."
  368.             goto ShellCodeError
  369.         endif
  370.         set BusInterfaceType = $($R1)
  371.         set BusNumber = $($R2)
  372.     else
  373.         set BusInterfaceType = *($(!STF_NCDETINFO),5)
  374.         set BusNumber = *($(!STF_NCDETINFO),6)
  375.     endif
  376. adapterverify = +
  377.     Shell "" DebugConfiguration "after running dialog"
  378.     Ifstr(i) $(DetectedCard) != TRUE
  379.         Goto skipoptions
  380.     Endif
  381.     Debug-Output "OEMNADE1.INF: Calling Param_VerifyCard"
  382.     Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
  383.     Ifstr(i) $($R0) == STATUS_SUCCESSFUL
  384.         Debug-Output "OEMNADE1.INF: Param_VerifyCard succeeded"
  385.         Goto skipoptions
  386.     Endif
  387.     Set from = adapteroptions
  388.     Set to = skipoptions
  389.     Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  390.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  391.         Debug-Output "ShellCode error: cannot get an error string."
  392.         goto ShellCodeError
  393.     endif
  394.     set Error = $($R0)
  395.     Goto Warning
  396. skipoptions = +
  397.     ifint $(OldVersionExisted) == $(TRUE)
  398.         ifstr(i) $(!NTN_InstallMode) == configure
  399.             goto writeparameters
  400.         endif
  401.     endif
  402.     StartWait
  403.     ifint $(OldVersionExisted) == $(FALSE)
  404.         ifstr(i) $(!NTN_InstallMode) == "install"
  405.            Ifstr(i) $(DoCopy) == "YES"
  406.               Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  407.               Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  408.                   Goto ShellCodeError
  409.               Else-Ifstr(i) $($R0) == STATUS_FAILED
  410.                   Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  411.                   ifint $($ShellCode) != $(!SHELL_CODE_OK)
  412.                       goto ShellCodeError
  413.                   endif
  414.                   set Error = $($R0)
  415.                   Goto fatal
  416.               Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  417.                   Goto successful
  418.               Endif
  419.               Set SrcDir = $($R1)
  420.            Endif
  421.            install "Install-Option"
  422.            ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  423.               Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  424.               ifint $($ShellCode) != $(!SHELL_CODE_OK)
  425.                   goto ShellCodeError
  426.               endif
  427.               set Error = $($R0)
  428.               goto fatal
  429.            endif
  430.         endif
  431.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  432.             $(ProductSoftwareName), +
  433.             $(ProductSoftwareName), +
  434.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  435.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  436.             $(NetEventDLL)
  437.         Set OEM_ABANDON_SOFTWARE = TRUE
  438.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  439.             Debug-Output "ShellCode error"
  440.             goto ShellCodeError
  441.         endif
  442.         set RegistryErrorIndex = $($R0)
  443.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  444.             EndWait
  445.             Debug-Output "Registry error: add software components"
  446.             CloseRegKey $($R1)
  447.             CloseRegKey $($R2)
  448.             CloseRegKey $($R3)
  449.             CloseRegKey $($R4)
  450.             CloseRegKey $($R5)
  451.             goto fatalregistry
  452.         endif
  453.         set SoftProductKey      = $($R1)
  454.         Set SoftNetRuleKey      = $($R2)
  455.         Set SoftServiceKey      = $($R3)
  456.         Set SoftParameterKey    = $($R4)
  457.         Set SoftLinkageKey      = $($R5)
  458.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  459.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  460.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  461.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  462.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  463.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  464.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  465.         Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  466.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  467.             Debug-Output "ShellCode error."
  468.             goto ShellCodeError
  469.         endif
  470.         set RegistryErrorIndex = $($R0)
  471.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  472.             EndWait
  473.             Debug-Output "Resgitry error: add value list."
  474.             CloseRegKey $(SoftProductKey)
  475.             CloseRegKey $(SoftNetRuleKey)
  476.             CloseRegKey $(SoftServiceKey)
  477.             CloseRegKey $(SoftParameterKey)
  478.             CloseRegKey $(SoftLinkageKey)
  479.             goto fatalregistry
  480.         endif
  481.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  482.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  483.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  484.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  485.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  486.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  487.         Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  488.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  489.             Debug-Output "ShellCode error."
  490.             goto ShellCodeError
  491.         endif
  492.         set RegistryErrorIndex = $($R0)
  493.         CloseRegKey $(SoftProductKey)
  494.         CloseRegKey $(SoftNetRuleKey)
  495.         CloseRegKey $(SoftServiceKey)
  496.         CloseRegKey $(SoftParameterKey)
  497.         CloseRegKey $(SoftLinkageKey)
  498.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  499.             EndWait
  500.             Debug-Output "Resgitry error: add value list."
  501.             goto fatalregistry
  502.         endif
  503.     endif
  504.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  505.     ifint $($R4) != -1
  506.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  507.     endif
  508.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  509.         Debug-Output "Cannot add hardware component"
  510.         goto ShellCodeError
  511.     endif
  512.     set RegistryErrorIndex = $($R0)
  513.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  514.         EndWait
  515.         Debug-Output "Registry error: add hardware component"
  516.         CloseRegKey $($R1)
  517.         CloseRegKey $($R2)
  518.         CloseRegKey $($R3)
  519.         goto fatalregistry
  520.     endif
  521.     set KeyParameters = $($R3)
  522.     set KeyAdapterRules = $($R2)
  523.     set AdapterNumber = $($R4)
  524.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  525.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
  526.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  527.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  528.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  529.                        {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)},+ 
  530.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  531.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  532.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  533.         Debug-Output "ShellCode error"
  534.         goto ShellCodeError
  535.     endif
  536.     CloseRegKey $($R1)
  537.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  538.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  539.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  540.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  541.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  542.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  543.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  544.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  545.         Debug-Output "ShellCode error."
  546.         goto ShellCodeError
  547.     endif
  548.     set RegistryErrorIndex = $($R0)
  549.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  550.         EndWait
  551.         Debug-Output "Resgitry error: add value list."
  552.         CloseRegKey $(KeyParameters)
  553.         CloseRegKey $(KeyAdapterRules)
  554.         goto fatalregistry
  555.     endif
  556.     CloseRegKey $(KeyAdapterRules)
  557.     goto writeparameters
  558. writeparameters = +
  559.     Set NewValueList = {{Transceiver,$(NoTitle),$(!REG_VT_DWORD),$(TransceiverValue)},+
  560.                         {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
  561.                         {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  562.                         {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  563.                         {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQ_Level)},+
  564.                         {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseAddrValue)},+
  565.                         {ZeroWaitState,$(NoTitle),$(!REG_VT_DWORD),$(WaitStateValue)},+
  566.                         {MemoryMappedBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(MemAddrDec)},+
  567.                         {MemoryMappedSize,$(NoTitle),$(!REG_VT_DWORD),$(MemAddrLength)}}
  568.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)\
  569.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  570.         Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
  571.     endif
  572.     CloseRegKey $(KeyParameters)
  573.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  574.         Debug-Output "ShellCode error."
  575.         goto ShellCodeError
  576.     endif
  577.     set RegistryErrorIndex = $($R0)
  578.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  579.         Debug-Output "Registry error: Add value list"
  580.         goto fatalregistry
  581.     endif
  582.     EndWait
  583.     goto successful
  584. bindingadapter =+
  585.     set Error = "Binding: Not Implmemented yet"
  586.     goto fatal
  587. removeadapter = +
  588.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  589.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  590.             $(ProductSoftwareName)
  591.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  592.             Debug-Output "ShellCode error"
  593.             goto ShellCodeError
  594.         endif
  595.         set RegistryErrorIndex = $($R0)
  596.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  597.             goto fatalregistry
  598.         endif
  599.     else
  600.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  601.             $(ProductSoftwareName), $(!NTN_RegBase)
  602.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  603.             Debug-Output "ShellCode error"
  604.             goto ShellCodeError
  605.         endif
  606.         set RegistryErrorIndex = $($R0)
  607.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  608.             goto fatalregistry
  609.         endif
  610.     endif
  611.     goto end
  612. UpgradeSoftware = +
  613.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  614.     Ifstr $(KeyProduct) != $(KeyNull)
  615.         install "Install-Update"
  616.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  617.             goto fatal
  618.         endif
  619.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  620.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  621.         CloseRegKey $(KeyProduct)
  622.     else
  623.         goto fatalregistry
  624.     endif
  625.     set iSearch = 1
  626. nextnetcard = +
  627.     Shell $(UtilityInf), FindNextNetworkCard, $(ProductHardwareName), $(iSearch)
  628.     set KeyNetcard = $($R0)
  629.     set iSearch = $($R1)
  630.     Debug-Output "OemNadEp.Inf: FindNextNetworkCard "$(KeyNetcard)","$(iSearch)
  631.     Ifstr $(KeyNetcard) != $(KeyNull)
  632.         Debug-Output "OemNadEp.Inf: Setting OperationsSupport value"
  633.         SetRegValue $(KeyNetcard) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}
  634.         CloseRegKey $(KeyNetcard)
  635.         goto nextnetcard
  636.     Endif
  637.     goto end
  638. successful = +
  639.     goto end
  640. abandon = +
  641.     ForListDo $(OEM_ABANDON_OPTIONS)
  642.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  643.             $(ProductSoftwareName), $($)
  644.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  645.             Debug-Output "ShellCode error"
  646.             goto ShellCodeError
  647.         endif
  648.         set RegistryErrorIndex = $($R0)
  649.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  650.             goto fatalregistry
  651.         endif
  652.     EndForListDo
  653.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  654.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  655.             $(ProductSoftwareName), FALSE
  656.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  657.             Debug-Output "ShellCode error"
  658.             goto ShellCodeError
  659.         endif
  660.         set RegistryErrorIndex = $($R0)
  661.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  662.             goto fatalregistry
  663.         endif
  664.     endif
  665.     goto end
  666. warning = +
  667.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  668.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  669.         goto ShellCodeError
  670.     endif
  671.     ifstr(i) $($R1) == "OK"
  672.         goto $(to)
  673.     else-ifstr(i) $($R1) == "CANCEL"
  674.         goto $(from)
  675.     else
  676.         goto "end"
  677.     endif
  678. nonfatalinfo = +
  679.     Set CommonStatus = STATUS_USERCANCEL
  680.     Set Severity = STATUS
  681.     goto nonfatalmsg
  682. nonfatal = +
  683.     Set Severity = NONFATAL
  684.     goto nonfatalmsg
  685. nonfatalmsg = +
  686.     ifstr(i) $(Error) == ""
  687.         Set Severity = NONFATAL
  688.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  689.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  690.             goto ShellCodeError
  691.         endif
  692.         set Error = $($R0)
  693.     endif
  694.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  695.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  696.         goto ShellCodeError
  697.     endif
  698.     ifstr(i) $($R1) == "OK"
  699.         goto $(from)
  700.     else
  701.         goto "end"
  702.     endif
  703. fatalregistry = +
  704.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  705.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  706.         goto ShellCodeError
  707.     endif
  708.     set Error = $($R0)
  709.     goto fatal
  710. fataldetect = +
  711.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  712.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  713.         Debug-Output "ShellCode error: cannot get an error string."
  714.         goto ShellCodeError
  715.     endif
  716.     set Error = $($R0)
  717.     Goto fatal
  718. fatal = +
  719.     ifstr(i) $(Error) == ""
  720.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  721.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  722.             goto ShellCodeError
  723.         endif
  724.         set Error = $($R0)
  725.     endif
  726.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  727.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  728.         goto ShellCodeError
  729.     endif
  730.     goto setfailed
  731. ShellCodeError = +
  732.     set DlgType      = "MessageBox"
  733.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  734.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  735.     set STF_MB_TYPE  = 1
  736.     set STF_MB_ICON  = 3
  737.     set STF_MB_DEF   = 1
  738.     ui start "Error Message"
  739.     goto setfailed
  740. setfailed = +
  741.     set CommonStatus = STATUS_FAILED
  742.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  743.         set OEM_ABANDON_ON = FALSE
  744.         goto abandon
  745.     endif
  746.     goto end
  747. end = +
  748.     goto term
  749. term = +
  750.     Return $(CommonStatus)
  751. [DebugConfiguration]
  752.     Set InfName = "OEMNADE1.INF"
  753.     Debug-Output $(InfName)" **CONFIGURATION STATE: "$($0)
  754.     Debug-Output $(InfName)" IRQ_Level is "$(!p:IRQ_Level)
  755.     Debug-Output $(InfName)" IOBaseAddrValue is "$(!p:IOBaseAddrValue)
  756.     Debug-Output $(InfName)" TransceiverValue is "$(!p:TransceiverValue)
  757.     Debug-Output $(InfName)" MemAddrDec is "$(!p:MemAddrDec)
  758.     Debug-Output $(InfName)" MemAddrLength is "$(!p:MemAddrLength)
  759.     Debug-Output $(InfName)" WaitStateValue is "$(!p:WaitStateValue)
  760.     return
  761. [Install-Option]
  762.     set STF_VITAL = ""
  763.     ifstr(i) $(AddCopy) == "YES"
  764.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  765.     endif
  766.     ifstr(i) $(DoCopy) == "YES"
  767.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  768.        CopyFilesInCopyList
  769.     endif
  770.     ifstr(i) $(DoConfig) == "YES"
  771.     endif
  772.     Exit
  773. [Install-Update]
  774.    set STF_VITAL        = ""
  775.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  776.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  777.    exit
  778. [Source Media Descriptions]
  779.     1 = "Windows NT Server CD-ROM", TAGFILE = cdrom_s.40
  780. [Signature]
  781.     FileType = MICROSOFT_FILE
  782. [GetSignature]
  783.     read-syms Signature
  784.     return $(FileType)
  785. [ProductType]
  786. STF_PRODUCT  = LanmanNT
  787. STF_PLATFORM = I386
  788. [Files-Inf]
  789. 2,    oemsetup.inf,     SIZE=1000,    RENAME=$(!UG_Filename)
  790. [Files-Elnk16]
  791. 1,ELNK16.SYS , SIZE=999
  792. [LanguagesSupported]
  793.     ENG
  794. [OptionsTextENG]
  795.     ELNK16     = "3Com Etherlink16/EtherLink16 TP Adapter"
  796. [FileConstantsENG]
  797. ProCaption   = "Windows NT Setup"
  798. ProCancel    = "Cancel"
  799. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  800.                "Are you sure you want to cancel copying files?"
  801. ProCancelCap = "Network Setup Message"
  802. ProText1     = "Copying:"
  803. ProText2     = "To:"
  804. FunctionTitle   = "3Com Etherlink 16 Adapter Card Setup"
  805. ProductSoftwareDescription      = "3Com Etherlink16/Etherlink16 TP Adapter Driver"
  806. ProductHardwareDescription      = "3Com Etherlink16/Etherlink16 TP Adapter"
  807. ProductSoftwareTitle    = "3Com Etherlink16/Etherlink16 TP Adapter Driver"
  808. ProductHardwareTitle    = "3Com Etherlink16/Etherlink16 TP Adapter"
  809. ShellCodeErrorTitle     = "Error: "$(FunctionTitle)
  810. ShellCodeErrorText      = "Shell Code Error."
  811. [DialogConstantsENG]
  812. Help        = "&Help"
  813. Exit        = "Cancel"
  814. OK          = "OK"
  815. HelpContext = ""
  816. Continue    = "Continue"
  817. Cancel      = "Cancel"
  818. [FileDependentDlgENG]
  819. Caption = $(FunctionTitle)
  820. Combo1Label = "&IRQ Level:"
  821. Combo2Label = "I/O &Port Address:"
  822. Label1 = "Transceiver Type"
  823. Radio1 = "&External"
  824. Radio2 = "O&n Board"
  825. CheckBox1 = "&Zero Wait State"
  826. Combo3Label = "&Memory Address:"
  827. Combo4Label = "Memo&ry Size:"
  828. DlgType = "RadioCombination"
  829. DlgTemplate = "ELNK_16"
  830. Combo1Out  = $(IRQ_Level)
  831. Combo1List = $(IRQ_List)
  832. Combo2List = $(IOADDR_Hex_List)
  833. Combo2Out  = $(IOADDR_Hex_Value)
  834. Combo3List = $(MemAddrHexList)
  835. Combo3Out  = $(MemAddrHexValue)
  836. Combo4List = $(MemAddrLengthList)
  837. Combo4Out  = $(MemAddrLength)
  838. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List, Combo4List}
  839. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
  840. EditTextIn = ""
  841. EditTextLim = ""
  842. CBOptionsGreyed = {}
  843. NotifyFields = {NO, NO, NO, NO}
  844. HelpContext = $(!IDH_DB_OEMNADE1_INS)
  845.